﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once

#include "GcmpGeometryInterface.h"

namespace gcmp
{
    class IArc2d;

    /// 参数转换类，用于实现参数和其他几何数据的互转
    class GCMP_GEOMETRY_INTERFACE_EXPORT AlgorithmConvertParameter
    {
    public:
        /// \brief  将二维圆弧的参数转换成角度
        /// \param[in]     pArc2d 二维圆弧,不可为空,否则报错
        /// \param[in]     parameter 参数
        /// \param[out]    angle 转换得到的角度
        /// \return    转换成功返回true,失败返回false
        static bool ConvertParameterToAngle(const IArc2d* pArc2d, double parameter, double &angle);

        /// \brief  将二维圆弧的角度转换成参数
        /// \param[in]     pArc2d 二维圆弧,不可为空,否则报错
        /// \param[in]     angle 角度
        /// \param[out]    parameter 转换得到的参数
        /// \return    转换成功返回true,失败返回false
        static bool ConvertAngleToParameter(const IArc2d* pArc2d, double angle, double &parameter);
    };
}
